Traditional Keyboard, Video and Mouse (KVM) switches, such as the SmartView XPro which is commercially available from Adder Technology Limited, are used to connect one or more KVM user stations, including a keyboard, video display and mouse to a plurality of computers so that one or more users can control a selected one of the plurality of computers. Multi-user KVM switches enable two or more users to independently control different computers at the same time.
KVM-via-IP devices, such as the AdderLink IP which is commercially available from Adder Technology Limited, may be used together with KVM switches to enable the computers to be controlled from a remote viewer, such as a VNC viewer commercially available from RealVNC Limited. The remote viewer software runs on a remote computer that is connected to the KVM-via-IP device by means of a local area or wide area network connection.
The main function of KVM-via-IP devices is to convert video, keyboard and mouse signals to and from network traffic in a manner that enables the user of the remote viewer to interact with the target computer as if they were using a keyboard, monitor and mouse connected directly to the target computer. FIG. 1 shows a typical arrangement of a prior art KVM-via-IP appliance (such as an AdderLink IP) connected to a multi-user KVM switch (such as a SmartView XPro). Using the arrangement shown, user A can be controlling computer 1 whilst user B is controlling computer 2. KVM-via-IP devices are sometimes also referred to as KVM-over-IP devices. When embedded into other devices the KVM-via-IP circuitry is sometimes also known as a “KVM-via-IP engine”, a “KVM-over-IP engine” or an “IP engine”.
The KVM-via-IP device works by capturing the incoming video signal and storing pixel values in its memory. The pixel data is then processed by a microprocessor which is typically able to identify changes in the pixel data between successive sampled video frames. The microprocessor encodes the pixel data and sends it via the network to the remote viewer. Keyboard and mouse data arriving from the viewer via the network is sent to the target computer via the keyboard and mouse links.
Higher end KVM switches, such as the AdderView CATx IP commercially available from Adder Technology Limited, often combine the functionality of a KVM-via-IP device and a KVM switch into a single product offer, known as an IP-enabled KVM switch. Such products may be used by medium and larger sized enterprises to conveniently control many computers.
These enterprises may have several system administrators and from time to time may require two or more users to be accessing different computers connected to the same KVM switch at the same time. To meet this requirement, an IP-enabled KVM switch must support multiple simultaneous users sessions whereby video from a first computer is delivered to a first remote user whilst video from a second computer is simultaneously delivered to a second remote user. Products that perform this function may be described as IP-enabled multi-user KVM switches.
An IP-enabled multi-user KVM switching system can be built by connecting multiple KVM-via-IP devices to the user ports of a multi-user KVM switch as shown in FIG. 1. However, in practice it is often more convenient to combine the KVM-via-IP and KVM switching functionality into an IP-enabled multi-user KVM switch.
A conceptual structure of a prior art IP-enabled multi-user KVM switch is shown in FIG. 2. Prior art multi-user IP-enabled KVM switches are commonly provided with a range of other features such as ports for the connection of a local keyboard, monitor and mouse, on screen display circuitry and circuitry for transmitting KVM signals over CATx (CAT 5,5e,6 etc) style cables. The implementation of such features is known to those skilled in the art and so for clarity of explanation, these extra features are not shown on FIG. 2. To avoid cable clutter in server rooms, Enterprise grade KVM switches, such as the AdderView CATx IP, typically use a small dongle to connect to the computer and a CATx cable to connect the dongle to the KVM switch. Again, this is omitted from FIG. 2 for clarity but those skilled in the art will readily appreciate that the device can be used either together with such dongles or not. FIG. 2 shows separate keyboard, video and mouse links for each computer for clarity of explanation but in many prior art systems, these signals are carried over a single cable terminated by a single connector.
The prior art IP-enabled multi-user KVM switch 200 is connected to multiple computers 201-204 via keyboard/mouse cables 205-208 and video cables 209-212. A central microprocessor 213 is in communication with a flash memory 215 and SDRAM memory 214 via busses 216 and 217 in a conventional manner. A Media Access Control device (MAC) 219, physical layer device (PHY) 220, which converts digital signals into signals required for transmission over the Ethernet network and vice versa, and magnetics 221, which provide a suitable interface for the transmission cables, are used to interface the microprocessor with the Ethernet network 222 that in turn is connected to computers 223 to 226 in a typical arrangement. The microprocessor reads its program data out of the flash memory and executes an embedded Linux operating system and a server program 218 utilising SDRAM memory 214. The server program communicates with client viewer software 227-230 running on remote computers 223-226 in a manner that enables keyboard, video and mouse signals to be transferred between the server software and the client software. Different prior art systems use different server and client software but the Enterprise VNC server and viewer programs commercially available from RealVNC Limited and used in the AdderLink IP are representative of such software programs.
The microprocessor 213 is in communication with a keyboard and mouse signalling circuit 231 via bus 216. Such circuits are commonly implemented using FPGAs such as Xilinx Spartan devices. The circuit is arranged so that keyboard and mouse data can be sent to each of the computers (1,2,3,4) from the microprocessor 213 in a manner that appears to be simultaneous from the point of view of the users A, B, C and D. This is achieved because bus 216 is much faster than the keyboard and mouse data and so the data for users A, B, C and D may be sent sequentially over bus 216 without noticeable delay.
The red, green and blue analogue colour signals and their associated horizontal and vertical synchronisation signals (232-235) are supplied from each computer 201-204 to a cross-point video switching circuit 236. The cross-point switching circuit is arranged so that any chosen output (237-240) may be connected to any of the available inputs (232-235). For illustrative purposes, FIG. 2 shows 4 inputs and 4 outputs but, in practice, the number of inputs is usually rather larger than the number of outputs, a typical arrangement being 4 outputs (to service 4 simultaneous users) and 16 inputs (to service 16 computers). The video routing is selected from the microprocessor 213 using signalling means 241.
A video processing engine (e.g. 241) is provided for each simultaneous remote user. In FIG. 2, four simultaneous IP sessions are supported and so four video processing engines are provided (241 to 244). Each of these video processing engines operates in a similar manner. Each video processing engine (e.g. 241) is fitted with an Analogue Front End (AFE) 245 and an FPGA 246. Separate FPGAs are shown 246,247,248,249 but conceptually the arrangement would be no different if the logic in each FPGA were in fact implemented in one large FPGA. The FPGA 246 is in communication with memories 250 and 251.
Each video processing engine works in a manner that is similar to sections of the AdderLink IP device commercially available from Adder Technology Limited. The incoming horizontal and vertical signals are fed into the FPGA 246. Logic within the FPGA counts the number of horizontal synchronisation pulses in a vertical synchronisation pulse and the number of vertical synchronisation pulses per second. The microprocessor 213 reads this information and compares it against a table of known video modes. Using a lookup table, the microprocessor 213 writes the relevant settings to the AFE 245 via the FPGA 246 that enable the AFE to capture the incoming video signals 237 and convert them into digital samples of the pixels 252. The FPGA transfers this digital pixel data into a selected one of the memories 251 or 252 whilst comparing the data with the video data previously sampled, which is held in the other memory 251,252. At the end of each video sample, the memories are switched over. The microprocessor 213 can read the differences between the two memories via the FPGA and can thus identify areas of the screen that have changed by more than a defined noise threshold. This information is used by the server software 218 to transmit mainly video change data to the client software therefore avoiding using unnecessary network bandwidth sending video data that has not significantly changed.
In order to service the multiple simultaneous user sessions, the prior art multi-user IP enabled KVM switch 200 uses a separate video processing engine (e.g. 241) for each simultaneous user. It can therefore be seen that for each of users A, B, C and D to be separately and independently using different computers 1,2,3,4 (for example, A uses 1 whilst B uses 2 whilst C uses 3 whilst D uses 4) with a prior art KVM switch it is necessary for each simultaneous user to be serviced by a dedicated video processing engine with a separate AFE. In the example shown in FIG. 2, the four users A, B, C and D require the four video processing engines 241,242,243, and 244.
It is desirable to simplify the construction of a video switch or a KVM switch that can support two or more simultaneous users.